加载可能比较慢,可以尝试点击脚注标,会弹出相关内容
王道操作系统视频 提取码: axin
考纲
- 操作系统的基本概念
- 操作系统的发展历程
- 程序运行环境
- CPU运行模式:内核模式与用户模式
- 中断和异常的处理:系统调用
- 程序的链接与装入:程序运行时内存映像与地址空间
- 操作系统结构
- 分层、模块化、宏定义、微内核、外核
- 操作系统引导
- 虚拟机
1.1 操作系统的基本概念
1.1.1 操作系统的概念
操作系统(Operating System,OS):是指控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合。操作系统是计算机系统中最基本的系统软件。
1.1.2 操作系统的特征
并发
共享
虚拟
异步
- 异步。
(操作系统两个最基本特征:并发和共享)
- 并发和共享关系
1.1.3 操作系统的目标和功能
tips:例子理解
用户是雇主,操作系统是工人(用来操作机器),计算机是机器(由处理机、存储器、设备、文件几个部件构成),工人有熟练的技能,能够控制和协调各个部件的工作,这就是操作系统对资源的管理;同时,工人必须接收雇主的命令,这就是“接口”;有了工人,机器就能发挥更大的作用,因此工人就成了“扩充机器”。
1.操作系统作为计算机系统资源的管理者
2.操作系统作为用户与计算机硬件系统之间的接口
为了让用户方便、快捷、可靠地操作计算机硬件并运行自己的程序,操作系统还提供了用户接口。主要分为两类:命令接口,用户利用这些操作命令来组织和控制作业的执行;程序接口,编程人员可以使用它们来请求操作系统服务。
(1)命令接口
(2)程序接口
程序接口由一组系统调用(也称广义指令)组成。用户通过在程序中使用这些系统调用来请求操作系统为其提供服务,如使用各种外部设备、申请分配和回收内存及其他各种要求。
3.操作系统实现了对计算机资源的扩充
1.1.4本节习题精选
一、单项选择题
01.操作系统是对()进行管理的软件。
操作系统管理计算机的硬件和软件资源,这些资源统称为计算机资源。注意,操作系统不仅管理处理机、存储器等硬件资源,而且也管理文件,文件不属于硬件资源,但属于计算机资源。
02.下面的()资源不是操作系统应该管理的。
源程序是一种计算机代码,是用程序设计语言编写的程序,经编译或解释后可形成具有一定功能的可执行文件,是直接面向程序员用户的,而不是操作系统的管理内容。本题采用排除法可轻易得到答案,但有人会问操作系统不是也管理“文件”吗?源程序也存储在文件中吧?出现这种疑问的原因是,对操作系统管理文件的理解存在偏颇。操作系统管理文件,是指操作系统关心计算机中的文件的逻辑结构、物理结构、文件内部结构、多文件之间如何组织的问题,而不是关心文件的具体内容。这就好比你是操作系统,有十个水杯让你管理,你负责的是将这些水杯放在何处比较合适,而不关心水杯中的是水还是饮料。后续章节会详细介绍文件的管理。
03.下列选项中,()不是操作系统关心的问题。
操作系统管理计算机软/硬件资源,扩充裸机以提供功能更强大的扩充机器,并充当用户与硬件交互的中介。高级程序设计语言的编译器显然不是操作系统关心的问题。编译器的实质是一段程序指令,它存储在计算机中,是上述水杯中的水。
04.操作系统的基本功能是()。
操作系统是指控制和管理整个计算机系统的硬件和软件资源,合理地组织、调度计算机的工作和资源的分配,以便为用户和其他软件提供方便的接口与环境的程序集合。A、B、C项都可理解成应用程序为用户提供的服务,是应用程序的功能,而不是操作系统的功能。
05.现代操作系统中最基本的两个特征是()。
操作系统最基本的特征是并发和共享,两者互为存在条件
06.下列关于并发性的叙述中,正确的是()。
并发性是指若干事件在同一时间间隔内发生,而并行性是指若干事件在同一时刻发生。
07.用户可以通过()两种方式来使用计算机。
操作系统主要向用户提供命令接口和程序接口(系统调用),此外还提供图形接口;当然,图形接口其实是调用了系统调用而实现的功能。
08.系统调用是由操作系统提供给用户的,它()。
系统调用是操作系统为应用程序使用内核功能所提供的接口。
09.操作系统提供给编程人员的接口是()。
操作系统为编程人员提供的接口是程序接口,即系统调用。
10.系统调用的目的是()。
操作系统不允许用户直接操作各种硬件资源,因此用户程序只能通过系统调用的方式来请求内核为其服务,间接地使用各种资源。
11.为了方便用户直接或间接地控制自己的作业,操作系统向用户提供了命令接口,该接口又可进一步分为()。
程序接口、图形接口与命令接口三者并没有从属关系。按命令控制方式的不同,命令接口分为联机用户接口和脱机用户接口。
12.以下关于操作系统的叙述中,错误的是()。
操作系统是用来管理资源的程序,用户程序也是在操作系统的管理下完成的。配置了操作系统的机器与裸机相比,资源利用率大大提高。操作系统不能直接用来编程,D错误。
13.【2009统考真题】单处理机系统中,可并行的是()。
I.进程与进程
Ⅱ.处理机与设备
Ⅲ.处理机与通道
IV.设备与设备
在单CPU系统中,同一时刻只能有一个进程占用CPU,因此进程之间不能并行执行。通道是独立于CPU的、控制输入输出的设备,两者可以并行。显然,处理器与设备是可以并行的。设备与设备是可以并行的,比如显示屏与打印机是可以并行工作的。
14.【2010统考真题】下列选项中,操作系统提供给应用程序的接口是().
操作系统接口主要有命令接口和程序接口(也称系统调用)。库函数是高级语言中提供的与系统调用对应的函数(也有些库函数与系统调用无关),目的是隐藏“访管”指令的细节,使系统调用更为方便、抽象。但是,库函数属于用户程序而非系统调用,是系统调用的上层。
二、综合应用题
01.说明库函数与系统调用的区别和联系。
1.2 操作系统发展历程
1.2.1 手工操作阶段(此阶段无操作系统)
所有工作都要人工干预。随着硬件发展,人机矛盾(速度和资源利用)越来越大。
缺点:1.用户独占全机,虽然不会出现因资源已被其他用户占用而等待的现象,但资源利用率低。
2.CPU等待手工操作,CPU的利用不充分。
1.2.2 批处理阶段(操作系统开始出现)
按发展历程分为单道批处理系统、多道批处理系统(多道程序设计技术出现以后)。
1.单道批处理系统
系统对作业的处理时成批进行的,但内存中始终保持一道作业。单道批处理系统是在解决人机矛盾及CPU和I/O设备速率不匹配的矛盾中形成的。主要特征如下:
此时面临的问题:每次主机内存中仅存放一道作业,每当它在运行期间(注意这里是“运行时”而不是“完成后”)发出输入/输出请求后,高速的CPU便处于等待低速的I/O完成的状态。为了进一步提高资源的利用率和系统吞吐量,引入多道程序技术。
2.多道批处理系统
特点:
多道程序设计技术的实现需要解决以下问题:
- 如何分配处理机
- 多道程序的内存分配问题
- I/O设备如何分配
- 如何组织和存放大量的程序和数据,以方便用户使用并保证其安全性与一致性
优点:资源利用率高,多道程序共享计算机资源,从而使各种资源得到充分利用;系统吞吐量大,CPU和其他资源保持“忙碌”状态。
缺点:用户响应的时间较长;不提供人机交互能力,用户即不能了解自己的程序的运行情况,又不能控制计算机。
1.2.3 分时操作系统
分时技术:把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各联机作业使用。
分时操作系统:多个用户通过终端同时共享一台主机,这些终端连接在主机上,用户可以同时与主机进行交互操作而互不干扰。
主要特征:
1.2.4 实时操作系统
- 为了能在某个时间限制内完成某些紧急任务而不需要时间片排队,诞生了实时操作系统。
主要特点:及时性和可靠性。
1.2.5 网络操作系统和分布式计算机系统
网络操作系统把计算机网络中的各台计算机有机地结合起来,提供一种统一、经济而有效的使用各台计算机的方法,实现各台计算机之间数据的相互传送。
主要特点:网络中各种资源的共享以及各台计算机之间的通信。
分布式计算机系统是由多台计算机组成并满足下列条件的系统:系统中任意两台计算机通过通信方式交换信息;系统中的任意台计算机都具有同等的地位,即没有主机也没有从机;每台计算机上的资源为所用用户共享;系统中的任意台计算机都可以构成一个子系统,并且还能重构;任何工作都可以分布在几台计算机上,由它们并行工作、协同完成。用于管理分布式计算机系统的操作系统称为分布式计算机系统。
主要特点:分布性和并行性。分布式操作系统与网络操作系统的本质不同是,分布式操作系统中的若干计算机相互协同完成同一任务。
1.2.6 个人计算机操作系统
目前最广泛(Windows等)
1.2.7本节习题精选
一、单项选择题
01.提高单机资源利用率的关键技术是()。
脱机技术是指在主机以外的设备上进行输入输出操作,需要时再送主机处理,以提高设备的利用率。虚拟技术与交换技术以多道程序设计技术为前提。多道程序设计技术由于同时在主存中运行多个程序,在一个程序等待时,可以去执行其他程序,因此提高了系统资源的利用率。
02.批处理系统的主要缺点是()。
批处理系统中,作业执行时用户无法干预其运行,只能通过事先编制作业控制说明书来间接干预,缺少交互能力,也因此才有了分时操作系统的出现。
03.下列选项中,不属于多道程序设计的基本特征的是()。
多道程序的运行环境比单道程序的运行环境更加复杂。引入多道程序后,程序的执行就失去了封闭性和顺序性。程序执行因为共享资源及相互协同的原因产生了竞争,相互制约。考虑到竞争的公平性,程序的执行是断续的。
04.操作系统的基本类型主要有()。
操作系统的基本类型主要有批处理操作系统、分时操作系统和实时操作系统。
05.实时操作系统必须在()内处理来自外部的事件。
实时系统要求能实时处理外部事件,即在规定的时间内完成对外部事件的处理。
06.()不是设计实时操作系统的主要追求目标。
实时性和可靠性是实时操作系统最重要的两个目标,而安全可靠体现了可靠性,快速处理和及时响应体现了实时性。资源利用率不是实时操作系统的主要目标,即为了保证快速处理高优先级任务,允许“浪费”一些系统资源。
07.下列()应用工作最好采用实时操作系统平台。
I.航空订票
Ⅱ.办公自动化
Ⅲ.机床控制
IV.AutoCAD
V.工资管理系统
VI.股票交易系统
实时操作系统主要应用在需要对外界输入立即做出反应的场合,不能有拖延,否则会产生严重后果。本题的选项中,航空订票系统需要实时处理票务,因为票额数据库的数量直接反映了航班的可订机位。机床控制也要实时,不然会出差错。股票交易行情随时在变,若不能实时交易会出现时间差,使交易出现偏差。
08.下列关于分时系统的叙述中,错误的是()。
分时系统主要用于交互式作业而非批处理作业。分时系统中每个任务依次轮流使用时间片,这是一种公平的CPU分配策略。分时系统的响应时间好,因为分时系统采用了时间片轮转法来调度进程,可以使得每个任务在较短的时间内得到响应,提高用户的满意度。分时系统是一种多用户操作系统,因为分时系统可以支持多个终端同时连接到同一台计算机上。
09.分时系统的一个重要性能是系统的响应时间,对操作系统的()因素进行改进有利于改善系统的响应时间。
采用优先级+非抢占式调度算法,既可使重要的作业/进程通过高优先级尽快获得系统响应,又可保证次要的作业进程在非抢占式调度下不会迟迟得不到系统响应,这样有利于改善系统的响应时间。加大时间片会延迟系统响应时间;静态页式管理和代码可重入与系统响应时间无关。
10.分时系统追求的目标是()。
要求快速响应用户是导致分时系统出现的重要原因。
11.在分时系统中,时间片一定时,()响应时间越长。
分时系统中,当时间片固定时,用户数越多,每个用户分到的时间片就越少,响应时间就相应变长。注意,分时系统的响应时间T可表示为T≈QN,其中Q是时间片,而N是用户数。
12.在分时系统中,为使多个进程能够及时与系统交互,关键的问题是能在短时间内,使所有就绪进程都能运行。当就绪进程数为100时,为保证响应时间不超过2s,此时的时间片最大应为()。
响应时间不超过2s,即在2s内必须响应所有进程。所以时间片最大为2s/100=20ms
13.操作系统有多种类型。允许多个用户以交互的方式使用计算机的操作系统,称为():允许多个用户将若干作业提交给计算机系统集中处理的操作系统,称为()方:在()的控制下,计算机系统能及时处理由过程控制反馈的数据,并及时做出响应;在IBM-PC中,操作系统称为()
这是操作系统发展过程中的几种主要类型。
14.下列各种系统中,()可以使多个进程并行执行。
多个进程并发执行的系统是指在一段时间内宏观上有多个进程同时运行,但在单处理器系统中,每个时刻却只能有一道程序执行,所以微观上这些程序只能是分时地交替执行。只有多处理器系统才能使多个进程并行执行,每个处理器上分别运行不同的进程。
15.下列关于操作系统的叙述中,正确的是()。
实时操作系统要求能在规定时间内完成特定的功能。批处理操作系统不需要在响应时间内处理完一个任务。分时操作系统不要求在周转时间或调度时间内处理完外部事件。
16.引入多道程序技术的前提条件之一是系统具有()。
多道程序技术要求进程间能实现并发,需要实现进程调度以保证CPU的工作效率,而并发性的实现需要中断功能的支持。
17.【2016统考真题】下列关于批处理系统的叙述中,正确的是()。
I.批处理系统允许多个用户与计算机直接交互
Ⅱ.批处理系统分为单道批处理系统和多道批处理系统
Ⅲ.中断技术使得多道批处理系统的I/O设备可与CPU并行工作
批处理系统中,作业执行时用户无法干预其运行,只能通过事先编制作业控制说明书来间接干预,缺少交互能力,I错误。批处理系统按发展历程又分为单道批处理系统、多道批处理系统,Ⅱ正确。多道程序设计技术允许把多个程序同时装入内存,并允许它们在CPU中交替运行,共享系统中的各种硬/软件资源,当一道程序因I/O请求而暂停运行时,CPU便立即转去运行另一道程序,即多道批处理系统的I/O设备可与CPU并行工作,这是借助中断技术实现的,Ⅲ正确。
18.【2017统考真题】与单道程序系统相比,多道程序系统的优,点是()。
I.CPU利用率高
Ⅱ.系统开销小
Ⅲ.系统吞吐量大
IV.I/O设备利用率高
多道程序系统中总有一个作业在CPU上执行,因此提高了CPU的利用率、系统吞吐量和I/O设备利用率,I、Ⅲ、IV正确。但系统要付出额外的开销来组织作业和切换作业,Ⅱ错误。
19.【2018统考真题】下列关于多任务操作系统的叙述中,正确的是()。
I.具有并发和并行的特点
Ⅱ.需要实现对共享资源的保护
Ⅲ.需要运行在多CPU的硬件平台上
现代操作系统都是多任务的,允许用户把程序分为若干个任务,使它们并发执行。在单CPU中,这些任务并发执行,即宏观上并行执行,微观上分时地交替执行:在多CPU中,这些任务是真正的并行执行。此外,引入中断之后才出现了多任务操作系统,而中断方式的特点是CPU与外设并行工作,因此I正确。多个任务必须互斥地访问共享资源,为达到这一目标必须对共享资源进行必要的保护,Ⅱ正确。多任务操作系统并不一定需要运行在多CPU的硬件上,单个CPU通过分时使用也能满足要求,Ⅲ错误。综上所述,I、Ⅱ正确,Ⅲ错误。
20.【2022统考真题】下列关于多道程序系统的叙述中,不正确的是()。
操作系统的基本特点:并发、共享、虚拟、异步,其中最基本、一定要实现的是并发和共享。早期的多道批处理操作系统会将所有进程的数据全部调入主存,再让多道程序并发执行,即使不支持虚拟存储管理,也能实现多道程序并发。进程多并不意味着CPU利用率高,进程数量越多,进程之间的资源竞争越激烈,甚至可能因为资源竞争而出现死锁现象,导致CPU利用率低。
二,综合应用题
01.有两个程序,程序A依次使用CPU计10s、设备甲计5s、CPU计5s、设备乙计10s、 CPU计10s;程序B依次使用设备甲计10s、CPU计10s、设备乙计5s、CPU计5s、设备乙计10s。在单道程序环境下先执行程序A再执行程序B,CPU的利用率是多少?在多道程序环境下,CPU利用率是多少?
02.设某计算机系统有一个CPU、一台输入设备、一台打印机。现有两个进程同时进入就绪态,且进程A先得到CPU运行,进程B后运行。进程A的运行轨迹为:计算50ms,打印信息100ms,再计算50ms,打印信息100ms,结束。进程B的运行轨迹为:计算 50ms,输入数据80ms,再计算100ms,结束。画出它们的甘特图,并说明:
1)开始运行后,CPU有无空闲等待?若有,在哪段时间内等待?计算CPU的利用率。
2)进程A运行时有无等待现象?若有,在何时发生等待现象?
3)进程B运行时有无等待现象?若有,在何时发生等待现象?
1.3 操作系统运行环境
1.3.1 处理器运行模式
在计算机系统中,通常CPU执行两种不同性质的程序:一种是操作系统内核程序;另一种是用户自编程序(即系统外层的应用程序,或简称“应用程序”)。
- 特权指令,是指不允许用户直接使用的指令,如I/O指令、内存中断指令,存取用于内存保护的寄存器、送程序状态字道程序状态字寄存器等的指令。
- 非特权指令,是指允许用户直接使用的指令,他不能直接访问系统中的软硬件资源,仅限于访问用户的地址空间,这也是为了防止用户程序对系统造成破坏。
在具体实现上,将CPU的运行模式划分为用户态(目态)和核心态(又称管态、内核态)。应用程序运行在用户态,操作系统的内核程序运行在核心态。
大多数内核操作系统的内核包括4方面的内容。
1. 时钟管理
时钟的第一功能是计时,操作系统需要通过时钟管理,向用户提供标准的系统时间。另外,通过时钟中断的管理,可以实现进程的切换。例如,在分时操作系统中采用时间片轮转调度,在实施系统中按截止时间控制运行,在批处理系统中通过时钟管理来衡量一个作业的运行程度等。
2.中断机制
引入中断技术初衷是提高多道程序运行环境中CPU的利用率,而且主要是针对外部设备的。后来逐步得到发展,形成了多种类型,成为操作系统各项操作的基础。
中断机制中,只有一小部分功能属于内核,它们负责保护和回复中断现场的信息,转移控制权到相关的处理程序。这样可以减少中断的处理时间,提高系统的并行处理能力。
3.原语
按层次结构设计的操作系统,底层必然是一些可被调用的公用小程序,它们各自完成一个规定的操作。它们特点如下:
- 处于操作系统的最底层,是最接近硬件的部分。
- 这些程序的运行具有原子性,其操作只能一气呵成(出于系统安全性和便于管理考虑)。
- 这些程序的运行时间都比较短,而且调用频繁。
通常把具有这些特点的程序称为原语(Atomic Operation)。定义原语的直接方法是关闭中断,让其所有动作不可分割地完成后再打开中断。系统中的设备驱动、CPU切换、进程通信等功能中的部分操作都可定义为原语,使它们成为内核的组成部分。
4.系统控制的数据结构及处理
系统中用来实现登记状态信息的数据结构很多。为了实现有效的管理,系统需要一些基本操作,常见操作有3种:
- 进程管理。进程状态管理、进程调度和分派、创建与撤销进程控制块等。
- 存储器管理。存储器的空间分配和回收、内存信息保护程序、代码对换程序等。
- 设备管理。缓冲区管理、设备分配和回收等。
1.3.2 中断和异常的概念(建议结合《计组》第五章)
1.中断和异常的定义
中断(Interruption)也称外中断,是指来自CPU执行指令外部的事件,通常用于信息输入/输出,如设备发出的I/O结束中断,表示设备输入/输出处理已完成。时钟中断,表示一个固定的时间片已到,让处理机处理计时、启动定时运行的任务等。
异常(Exception)也称内中断,是指来自CPU执行指令内部的事件,如程序的非法操作码、地址越界、运算溢出、虚存系统的缺页及专门的陷入指令等引起的事件。异常不能被屏蔽,一旦出现,就应立即处理。
2. 中断和异常的分类
3. 中断和异常的处理过程
处理过程大致描述如下:当CPU再执行用户程序的第i条指令时检测到一个异常事件,或再执行第i条指令后发现一个中断请求信号,则CPU打断当前的用户程序,然后转到相应的中断或异常处理程序去执行。若中断或异常处理程序能够解决相应的问题,则在中断或异常处理程序的最后,CPU通过执行中断或异常返回指令,回到被打断的用户程序的第i条指令或第i+1条指令继续执行;若中断或异常处理程序发现是不可恢复的致命错误,则终止用户程序。通常情况下,对中断和异常的具体处理过程由操作系统(和驱动程序)完成。
1.3.3 系统调用
系统调用指用户在程序中调用操作系统所提供的一些子功能,系统调用可视为特殊的公共子程序。系统中的各种共享资源都由操作系统统一掌管,因此在用户程序中,凡是与资源有关的操作(如存储分配、进行I/O传输及管理文件等),都必须通过系统调用方式向操作系统提出服务请求,并由操作系统代为完成。系统调用按功能大致可分为如下几类。
- 设备管理。完成设备的请求或释放,以及设备启动等功能。
- 文件管理。完成文件的读、写、创建及删除等功能。
- 进程控制。完成进程的创建、撤销、阻塞及唤醒等功能。
- 进程通信。完成进程之间的消息传递或信号传递等功能。
- 内存管理。完成内存的分配、回收以及获取作业占用内存区大小及始址等功能。
系统调用的处理需要由操作系统内核程序负责完成,要运行在核心态原因。用户程序可以执行陷入指令(又称访管指令或trap指令)来发起系统调用,请求操作系统提供服务。
用户程序执行“陷入指令”,相当于把CPU的使用权主动交给操作系统内核程序(CPU状态从用户态进入核心态),之后操作系统内核程序再对系统调用请求做出相应处理。处理完成后,操作系统内核程序又会把CPU的使用权还给用户程序(即CPU状态会从核心态回到用户态)
这么设计的目的:用户程序不能直接执行对系统影响非常大的操作,必须通过系统调用的方式请求操作系统代为执行,以便保证系统的稳定性和安全性,防止用户程序随意更改或访问重要的系统资源,影响其他进程的运行。
操作系统的运行环境可以理解为:用户通过操作系统运行上层程序(如系统提供的命令解释程序或用户自编程序),而这个上层程序的运行依赖于操作系统的底层管理程序提供服务支持,当需要管理程序服务时,系统则通过硬件中断机制进入核心态,运行管理程序;也可能使程序运行出现异常情况,被动地需要管理程序的服务,这是就通过异常处理来进入核心态。管理程序运行结束时,用户程序需要继续运行,此时通过相应的保存到程序现场退出中断处理程序或异常处理程序,返回断点继续执行,如果1.3所示。
用户态转向核心态例子
1.用户程序要求操作系统的服务,即系统调用2.发生一次中断
3.用户程序中产生了一个错误状态
4.用户程序中企图执行一条特权指令
5.从核心态转向用户态由一条指令实现,这条指令也是特权命令,一般是中断返回指令
注意:由用户态进入核心态,不仅状态需要切换,而且所用的堆栈也可能需要由用户堆栈切换为系统堆栈,但这个系统堆栈也是属于该进程的.
若程序的运行由用户态转到核心态,则会用到访管指令,访管指令是在用户态使用的,所以他不可能是特权指令.
1.3.4 本节习题精选
单项选择题
01.下列关于操作系统的说法中,错误的是()。
I.在通用操作系统管理下的计算机上运行程序,需要向操作系统预订运行时间
Ⅱ.在通用操作系统管理下的计算机上运行程序,需要确定起始地址,并从这个地址开始执行
Ⅲ.操作系统需要提供高级程序设计语言的编译器
IV.管理计算机系统资源是操作系统关心的主要问题
I错误:通用操作系统使用时间片轮转调度算法,用户运行程序并不需要预先预订运行时间。Ⅱ正确:操作系统执行程序时,必须从起始地址开始执行。Ⅲ错误:编译器是操作系统的上层软件,不是操作系统需要提供的功能。IV正确:操作系统是计算机资源的管理者,管理计算机系统资源是操作系统关心的主要问题。
02.下列说法中,正确的是()。
I.批处理的主要缺点是需要大量内存
Ⅱ.当计算机提供了核心态和用户态时,输入输出指令必须在核心态下执行
Ⅲ,操作系统中采用多道程序设计技术的最主要原因是提高CPU和外部设备的可靠性
IV.操作系统中,通道技术是一种硬件技术
I错误:批处理的主要缺点是缺少交互性。批处理系统的主要缺点是常考点,读者对此要非常敏感。Ⅱ正确:输入输出指令属于特权指令,只能由操作系统使用,因此必须在核心态下执行。Ⅲ错误:多道性是为了提高系统利用率和吞吐量而提出的。IV正确:I/O通道实际上是一种特殊的处理器,它具有执行I/O指令的能力,并通过执行通道程序来控制I/O操作。
03.下列关于系统调用的说法中,正确的是()。
I.用户程序使用系统调用命令,该命令经过编译后形成若干参数和陷入指令
Ⅱ.用户程序使用系统调用命令,该命令经过编译后形成若干参数和屏蔽中断指令
Ⅲ.用户程序创建一个新进程,需使用操作系统提供的系统调用接口
IV.当操作系统完成用户请求的系统调用功能后,应使CPU从内核态转到用户态
系统调用需要触发陷入指令,如基于x86的Linux系统,该指令为int Ox80或sysenter,I正确。程序设计无法形成屏蔽中断指令,Ⅱ错误。用户程序通过系统调用进行进程控制,Ⅲ正确。执行系统调用时CPU状态要从用户态转到内核态,这是通过中断来实现的,当系统调用返回后,继续执行用户程序,同时CPU状态也从内核态转到用户态,IV正确。
04.()是操作系统必须提供的功能。
中断是操作系统必须提供的功能,因为计算机的各种错误都需要中断处理,核心态与用户态切换也需要中断处理。
05.用户程序在用户态下要使用特权指令引起的中断属于()。
由于操作系统不允许用户直接执行某些可能损害机器的指令(特权指令),它们只能在核心态下运行,因此用户程序在用户态下使用特权指令会引起访管中断(也称陷入中断),即用户程序需要通过一条访管指令(也称陷入指令)切换到核心态,以请求操作系统内核为其服务。注意区分非法指令和特权指令:非法指令是指CPU无法识别或执行的指令,比如一个不存在的操作码:特权指令是指只能在核心态下执行的指令,比如/O指令、关中断指令等。
06.处理器执行的指令被分为两类,其中有一类称为特权指令,它只允许()使用。
内核可以执行处理器能执行的任何指令,用户程序只能执行除特权指令外的指令。所以特权指令只能由内核即操作系统使用。
07.在中断发生后,进入中断处理的程序属于()。
当中断或异常发生时,通过硬件实现将运行在用户态的CU立即转入核心态。中断发生时,若被中断的是用户程序,则系统将从目态转入管态,在管态下进行中断的处理:若被中断的是低级中断,则仍然保持在管态,而用户程序只能在目态下运行,因此进入中断处理的程序只能是 OS程序。被中断程序本身可能是用户程序,但是进入中断的处理程序一定是OS程序。
08.计算机区分核心态和用户态指令后,从核心态到用户态的转换是由操作系统程序执行后完成的,而用户态到核心态的转换则是由()完成的。
计算机通过硬件中断机制完成由用户态到核心态的转换。B显然不正确,核心态程序只有在操作系统进入核心态后才可以执行。D中的中断处理程序一般也在核心态执行,因此无法完成“转换成核心态”这一任务。若由用户程序将操作系统由用户态转换到核心态,则用户程序中就可使用核心态指令,这就会威胁到计算机的安全,所以C不正确。
计算机通过硬件完成操作系统由用户态到核心态的转换,这是通过中断机制来实现的。发生中断事件时,由硬件中断机制将计算机状态置为核心态。
09.可在用户态执行的指令是()。
屏蔽中断指令、设置时钟指令、停机指令都是特权指令,操作不当会损害机器。修改内存单元的值是非特权指令,可以在用户态下执行,但是进程只能访问自己的用户空间。
10.在操作系统中,只能在核心态下运行的指令是()。
大多数计算机操作系统的内核包括四个方面的内容,即时钟管理、中断机制、原语和系统控制的数据结构及处理,其中第4部分实际上是系统调用类的指令(广义指令)。A、C和D三项均可以在汇编语言中涉及,因此都可以运行在用户态。从另外的角度考虑,若在用户态下允许执行“置时钟指令”,则一个用户进程可在时间片还未到之前把时钟改回去,从而导致时间片永远不会用完,进而导致该用户进程一直占用CPU,这显然是不合理的。
注意:操作系统的主要功能是为应用程序的运行创建良好的环境,为了达到这个目的,内核提供一系列具备预定功能的多内核函数,通过一组称为系统调用(system call)的接口呈现给用户.系统调用将应用程序的请求传给内核,调用相应的内核函数完成所需的处理,将处理结果返回给应用程序,如果没有系统调用和内核函数,那么用户将不能编写大型应用程序。
11.下列程序中,不工作在内核态的是()。
命令解释程序属于命令接口,能面对用户,在用户态下执行。磁盘调度程序、中断处理程序和进程调度程序都工作在内核态,因为它们需要管理硬件资源和进程状态。
12.“访管”指令()使用。
“访管”指令仅在用户态下使用,执行“访管”指令将用户态转变为核心态。
13.当CPU执行操作系统代码时,处理器处于()。
运行操作系统代码的状态为核心态。
14.在操作系统中,只能在核心态下执行的指令是()。
系统调用命令必然工作在核心态。注意区分调用和执行,系统调用的调用可能发生在用户态,调用系统调用的那条指令不一定是特权指令,但系统调用的执行一定在核心态。
15.下列选项中,必须在核心态下执行的指令是()。
输入输出指令是特权指令,涉及中断操作,而中断处理是由系统内核负责的,工作在核心态。而A、B、C项均可通过使用汇编语言编程来实现,因此它们可在用户态下执行。
16.CPU处于核心态时,它可以执行的指令是()。
访管指令在用户态下使用,是用户程序“自愿进管”的手段,用户态下不能执行特权指令。在核心态下,CPU可以执行指令系统中的任何指令。
17.()程序可执行特权指令。
特权指令是指仅能由操作系统使用的指令。
18.下列中断事件中,能引起外部中断的事件是()。
I.时钟中断
Ⅱ.访管中断
Ⅲ.缺页中断
外部中断是由CPU外部的事件引起的,如I/O设备的请求、时钟信号等。内部中断(也称异常)是由CPU内部的事件引起的,如访管指令、缺页异常等。
19.下列关于库函数和系统调用的说法中,不正确的是()。
库函数是指被封装在库文件中的可复用的代码块,运行在用户态:而系统调用是面向硬件的,运行在内核态,是操作系统为用户提供的接口。库函数可以很方便地调试,而系统调用很麻烦,因为它运行在内核态。库函数可以很方便地替换,而系统调用通常不可替换。库函数属于过程调用,开销较小;系统调用需要在用户空间和内核空间中进行上下文切换,开销较大。
20.下列关于系统调用和一般过程调用的说法中,正确的是()。
系统调用需要保存PSW和PC的值,一般过程调用只需保存PC的值,A错误。系统调用的被调用过程是操作系统中的程序,是系统级程序,必须运行在内核态,B正确。一般过程调用的被调用程序与调用程序运行在同一个状态,可能是系统态,也可能是用户态,C和D错误。
21.用户在程序中试图读某文件的第100个逻辑块,使用操作系统提供的()接口。
操作系统通过系统调用向用户程序提供服务,文件I/O需要在内核态运行。
22.【2011统考真题】下列选项中,在用户态执行的是()。
缺页处理和时钟中断都属于中断,在核心态执行:进程调度是操作系统内核进程,无须用户干预,在核心态执行:命令解释程序属于命令接口,是面对用户的,在用户态执行。
23.【2012统考真题】下列选项中,不可能在用户态发生的事件是()。
本题的关键是对“在用户态发生”(注意与“在用户态执行”区分)的理解。对于A,系统调用是操作系统提供给用户程序的接口,系统调用发生在用户态,被调用程序在核心态下执行。对于B,外部中断是用户态到核心态的“门”,也发生在用户态,在核心态完成中断处理过程。对于C,进程切换属于系统调用执行过程中的事件,只能发生在核心态:对于D,缺页产生后,在用户态发生缺页中断,然后进入核心态执行缺页中断服务程序。
24.【2012统考真题】中断处理和子程序调用都需要压栈,以便保护现场,中断处理一定会保存而子程序调用不需要保存其内容的是()。
子程序调用不改变程序的状态,因为子程序调用是编译器可控流程,而中断不是。以程序 if(a==b)为例,它通常包含一条测试指令,以及一条根据标志位决定是否需要跳转来调用子程序的指令。编译器不在这两条指令中间插入任何子程序调用代码,因此标志位不变,但中断却随时可能发生,导致标志位改变。具体地说,执行if(a==b)时,会进行a-b操作,并生成相应的标志位,进而根据标志位来判断是否发生跳转。假设刚好在生成相应的标志位后发生了中断,若不保存 PSW 的内容,则后续根据标志位来进行跳转的流程就可能发生错误。但是,若进行了子程序调用,则说明已经根据a-b的标志位进行了跳转,此时PSW的内容已无意义而无须保存。综上所述,中断处理和子程序调用都有可能使PSW的内容发生变化,但中断处理程序执行完返回后,可能需要用到PSW原来的内容,子程序执行完返回后,一定不需要用到PSW原来的内容,因此选B。 A项都会保存,C和D项不一定会保存。
25.【2013统考真题】下列选项中,会导致用户进程从用户态切换到内核态的操作是()。
I.整数除以零
Ⅱ.sin()函数调用
Ⅲ.read系统调用
需要在系统内核态执行的操作是整数除零操作(需要中断处理)和read系统调用函数,sinO函数调用是在用户态下进行的。
26.【2014统考真题】下列指令中,不能在用户态执行的是()。
trap指令、跳转指令和压栈指令均可以在用户态执行,其中trap指令负责由用户态转换为内核态。关中断指令为特权指令,必须在核心态才能执行。注意,在操作系统中,关中断指令是权限非常大的指令,因为中断是现代操作系统正常运行的核心保障之一,能把它关掉,说明执行这条指令的一定是权限非常大的机构(管态)。
28.【2015统考真题】假定下列指令已装入指令寄存器,则执行时不可能导致CPU从用户态变为内核态(系统态)的是()。
部分指令可能出现异常,从而转到核心态。指令A有除零异常的可能。指令B为软中断指令,用于触发一个中断并跳转到相应的中断处理程序,“n”表示中断向量号,使用软中断可以在用户态和内核态之间切换,以实现系统调用。指令D有缺页异常的可能。指令C不会发生异常。
29.【2016统考真题】异常是指令执行过程中在处理器内部发生的特殊事件,中断是来自处理器外部的请求事件。下列关于中断或异常情况的叙述中,错误的是()。
中断是指来自CPU执行指令以外事件,如设备发出的I/O结束中断,表示设备输入/输出已完成,希望处理机能够向设备发出下一个输入/输出请求,同时让完成输入/输出后的程序继续运行。异常也称内中断,指源自CPU执行指令内部的事件。A错误。
30.【2017统考真题】执行系统调用的过程包括如下主要操作:
①返回用户态
②执行陷入(trap)指令
③传递系统调用参数
④执行相应的服务程序
正确的执行顺序是()。
执行系统调用的过程:正在运行的进程先传递系统调用参数,然后由陷入(trp)指令负责将用户态转换为内核态,并将返回地址压入堆栈以备后用,接下来CPU执行相应的内核态服务程序,最后返回用户态。
31.【2018统考真题】定时器产生时钟中断后,由时钟中断服务程序更新的部分内容是()
I.内核中时钟变量的值
Ⅱ.当前进程占用CPU的时间
Ⅲ.当前进程在时间片内的剩余执行时间
时钟中断的主要工作是处理和时间有关的信息及决定是否执行调度程序。和时间有关的所有信息包括系统时间、进程的时间片、延时、使用CPU的时间、各种定时器。
32.【2019统考真题】下列关于系统调用的叙述中,正确的是()。
I.在执行系统调用服务程序的过程中,CPU处于内核态
Ⅱ.操作系统通过提供系统调用避免用户程序直接访问外设
Ⅲ.不同的操作系统为应用程序提供了统一的系统调用接口
IV.系统调用是操作系统内核为应用程序提供服务的接口
用户可以在用户态调用操作系统的服务,但执行具体的系统调用服务程序是处于内核态的, I正确;设备管理属于操作系统的职能之一,包括对输入/输出设备的分配、初始化、维护等,用户程序需要通过系统调用使用操作系统的设备管理服务,Ⅱ正确;操作系统不同,底层逻辑、实现方式均不相同,为应用程序提供的系统调用接口也不同,Ⅲ错误;系统调用是用户在程序中调用操作系统提供的子功能,IV正确。
33.【2020统考真题】下列与中断相关的操作中,由操作系统完成的是()。
I.保存被中断程序的中断点
Ⅱ.提供中断服务
Ⅲ.初始化中断向量表
IV.保存中断屏蔽字
当CPU检测到中断信号后,由硬件自动保存被中断程序的断点[程序计数器(PC)和程序状态字寄存器(PSW)],I错误。之后,硬件找到该中断信号对应的中断向量,中断向量指明中断服务程序入口地址(各中断向量统一存放在中断向量表中,该表由操作系统初始化,Ⅲ正确)。接下来开始执行中断服务程序,保存中断屏蔽字、保存各通用寄存器的值,并提供与中断信号对应的中断服务,中断服务程序属于操作系统内核,Ⅱ和IV正确。
34.【2021统考真题】下列指令中,只能在内核态执行的是()。
在内核态下,CPU可执行任何指令,在用户态下CPU只能执行非特权指令,而特权指令只能在内核态下执行。常见的特权指令有:①有关对I/O设备操作的指令:②有关访问程序状态的指令;③存取特殊寄存器的指令:④其他指令。A、C和D都是提供给用户使用的指令,可以在用户态执行,只是可能会使CPU从用户态切换到内核态。
35.【2021统考真题】下列选项中,通过系统调用完成的操作是()。
系统调用是由用户进程发起的,请求操作系统的服务。对于A,当内存中的空闲页框不够时,操作系统会将某些页面调出,并将要访问的页面调入,这个过程完全由操作系统完成,不涉及系统调用。对于B,进程调度完全由操作系统完成,无法通过系统调用完成。对于C,创建新进程可以通过系统调用来完成,如Liux中通过fork系统调用来创建子进程。对于D,生成随机数是普通的函数调用,不涉及请求操作系统的服务,如C语言的random()函数。
36.【2022统考真题】下列关于CPU模式的叙述中,正确的是()。
CPU在用户态时只能执行非特权指令,在内核态时可以执行特权指令和非特权指令。
37.【2022统考真题】执行系统调用的过程涉及下列操作,其中由操作系统完成的是()。
I.保存断点和程序状态字
Ⅱ.保存通用寄存器的内容
Ⅲ.执行系统调用服务例程
IV.将CPU模式改为内核态
发生系统调用时,CPU通过执行软中断指令将CPU的运行状态从用户态切换到内核态,这个过程与中断和异常的响应过程相同,由硬件负责保存断点和程序状态字,并将CPU模式改为内核态。然后,执行操作系统内核的系统调用入口程序,该内核程序负责保存通用寄存器的内容,再调用执行特定的系统调用服务例程。综上,I、IV由硬件完成,Ⅱ、Ⅲ由操作系统完成。
38.【2023统考真题】在操作系统内核中,中断向量表适合采用的数据结构是()。
本题考查了“计算机组成原理”的考点,并且综合了“数据结构”的内容。中断向量表用于存放中断处理程序的入口地址,CPU通过查询得到中断类型号,然后据此计算可以得到对应中断服务程序的入口地址在中断向量表的位置,采用数组作为中断向量表的存储结构,可实现时间为 O(1)的快速访问,从而提高中断处理的效率。
1.4 操作系统结构
1.分层法
分层法是将操作系统分为若干层,最底层(层0)为硬件,最高层(层N)为用户接口,每层只能调用紧邻它的低层的功能和服务(单向依赖).分层结构如图1.4.
优点:
问题:
2.模块化
模块化是将操作系统按功能划分为若干具有一定独立性的模块.每个模块具有某方面的管理功能,并规定好各模块之间能够通过接口进行通信.还可以进一步将各模块细分为若干具有一定功能的子模块,同时也规定好各子模块之间的接口.这种设计方法称为 模块-接口法.图1.5为由模块、子模块等组成的模块化操作系统结构.
在划分模块时,如果将模块划分得太小,虽然能降低模块本身的复杂性,但会使得模块间的联系过多,造成系统比较混乱;如果划分过大,会增加模块内部的复杂度,显然应在两者间权衡.此外,划分模块时,要充分考虑模块的独立性问题,因为模块独立性越高,各模块间的交互就越少,系统的结构就越清晰.衡量模块的独立性主要两个标准:
- 内聚性,模块内部各部分间联系的紧密程度.内聚性越高,独立性越好.
- 耦合度,模块间相互联系和相互影响的程度.耦合度越低,模块独立性越好.
优点:
- 提高了操作系统设计的正确性、可理解性和可维护性;
- 增强了操作系统的可适应性;
- 加速了操作系统的开发过程
缺点:
- 模块间的接口规定很难满足对接口的实际需求.
- 各模块设计者齐头并进,每个决定无法建立在上一个已验证的正确决定的基础上,因此无法找到一个可靠的决定顺序.
3.宏内核
从操作系统的内核架构划分,可分为宏内核和微内核.
宏内核,也称单内核或大内核,指将系统的主要功能模块都作为一个紧密联系的整体运行在核心态,从而为用户程序提供高性能的系统服务.因为各管理模块之间共享信息,能有效利用相互之间的有效特性,所以具有无可比拟的性能优势.
4.微内核
微内核的基本概念
微内核架构指将内核中最基本的功能保留在内核,而将那些不需要在核心态执行的功能移动到用户态执行,从而降低内核的设计复杂性.那些移出内核的操作系统代码根据分层的原则被划分称若干服务程序,它们的执行相互独立,交互则都借助于微内核进行通信.
微内核将操作系统划分为两大部分:微内核和多个服务器.微内核时指精心设计的、能实现操作系统最基本核心功能的小型内核,通常包含:①与硬件处理紧密相关的部分;②一些较基本的功能;③客户和服务器之间的通信.这些部分知识为构建通用操作系统提供一个重要基础,这样就可以确保将内核做的很小.操作系统中的绝大部分功能都放在微内核外的一组服务器(进程)中实现,如用于提供对进程(线程)进行管理的进程(线程)服务器等,它们都是作为进程来实现的,运行在用户态,客户与服务器之间是借助微内核提供的消息传递机制来实现交互的.图1.6展示了单机环境下的客户/服务器模式.
在微内核结构中,为了实现高可靠性,只有微内核运行在内核态,其余模块都运行在用户态,一个模块中的错误只会使这个模块崩溃. 1_4_4_1
微内核的基本功能
微内核结构通常利用"机制与策略分离"的原理来构造OS结构,将机制部分以及与硬件紧密相关的部分放入内核.微内核通常具有如下功能:
微内核操作系统将进程管理、存储器管理以及I/O管理这些功能一分为二,属于机制的很小一部分放入微内核,而绝大部分放入微内核外的各种服务器实现,大多数服务器都要比微内核大.因此,在采用客户/服务器模式时,能把微内核做得很小.
微内核的特点
主要优点:
微内核结构的主要问题是性能问题,因为需要频繁地在核心态和用户态之间进行切换,操作系统的执行开销偏大。为了改善运行效率,可以将那些频繁使用的系统服务移回内核,从而保证系统性能,但这又会使微内核的容量明显地增大。
5.外核
不同于虚拟机克隆真实机器,另一种策略使对机器进行分区,给每个用户整个资源的一个子集1_4_4_9。在底层中,一种称为外核(exokernel)的程序在内核中运行。它的任务是为虚拟机分配资源,并检查使用这些资源的企图,以确保没有机器会使用他人的资源。每个用户层的虚拟机可以运行自己的操作系统,但限制只能使用已经申请并且获得分配的那部分资源。
优点:①减少了映射层1_4_4_10。②它将多道程序(在外核内)与用户操作系统代码(在用户空间内)加以分离,而且相应的负载并不重,因为外核所做的只是保持多个虚拟机彼此不发生冲突。
1.5 操作系统引导
操作系统引导是指计算机利用CPU运行特定程序,通过程序识别硬盘,识别硬盘分区,识别硬盘分区上的操作系统,最后通过程序启动操作系统。
常见引导过程如下:
①激活CPU。1_5_1
②硬件自检。1_5_2
③加载带有操作系统的硬盘。1_5_3
④加载主引导记录MBR。1_5_4
⑤扫描硬盘分区表,并加载硬盘活动分区。1_5_5
⑥加载分区引导记录PBR。1_5_6
⑦加载启动管理器。1_5_7
⑧加载操作系统。
1.6 虚拟机
1.6.1 虚拟机的基本概念
虚拟机时一台逻辑计算机,是指利用特殊的虚拟化技术,通过隐藏特定计算平台的实际物理特性,为用户提供抽象的、统一的、模拟的计算环境。有两类虚拟化方法。
1.第一类虚拟机管理程序(裸金属架构)
从技术上讲,第一类虚拟机管理程序就像一个操作系统,因为它时唯一一个运行在最高特权级的程序。它在裸机上运行并且具备多道程序功能。虚拟机管理程序向上层提供若干台虚拟机,这些虚拟机是裸机硬件的精准复制品。由于每台虚拟机都与裸机相同,所以在不同的虚拟机上可以运行任何不同的操作系统。图1.7(a)显示了第一类虚拟机管理程序。
虚拟机作为用户态的一个进程运行,不允许执行敏感指令。然而,虚拟机上的操作系统认为子集运行在内核态(实际上不是),称为虚拟内核态。虚拟机中的用户进程认为子集运行在用户态(实际确实是)。当虚拟机操作系统执行了一条CPU处于内核态才允许执行的指令时,会陷入虚拟机管理程序。在支持虚拟化的CPU上,虚拟机管理程序检查这条指令是由虚拟机中的操作系统执行的还是由用户程序执行的。如果是前者,虚拟机管理程序将安排这条指令功能的正确执行。否则,虚拟机管理程序将模拟真实硬件面对用户态执行敏感指令时的行为。
2.第二类虚拟机管理程序(寄居架构)
图1.7(b)显示了第二类虚拟机管理程序。它是一个依赖于Windows等操作系统分配和调度资源的程序,很像一个普通的进程。第二类虚拟机管理程序仍然伪装成具有CPU和各种设备的完整计算器。VMware Workstation是首个X86平台上的第二类虚拟机管理程序。
运行在两类虚拟机管理程序上的操作系统都称为 客户操作系统 。对于第二类虚拟机管理程序,运行在底层硬件上的操作系统称为 宿主操作系统 。
“云”主机
虚拟化在Web主机领域很流行。没有虚拟化,服务商只能提供共享托管(不能控制服务器的软件)和独占托管(成本较高)。当服务商提供租用虚拟机时,一台物理服务器就可以运行多个虚拟机,每个虚拟机看起来都是一台完整的服务器,客户可以在虚拟机上安装自己想用的操作系统和软件,但只需支付较低费用。这就是市面上常见的“云”主机1.6.2本节习题精选
单项选择题
01.用()设计的操作系统结构清晰且便于调试。
分层式结构简化了系统的设计和实现,每层只能调用紧邻它的低层的功能和服务:便于系统的调试和验证,在调试某层时发现错误,那么错误应在这层上,这是因为其低层都已调试好。
02.下列关于分层式结构操作系统的说法中,()是错误的。
单向依赖是分层式OS的特点。分层式OS中增加或替换一个层中的模块或整层时,只要不改变相应层间的接口,就不会影响其他层,因而易于扩充和维护。层次定义好后,相当于各层之间的依赖关系也就固定了,因此往往显得不够灵活,选项C错误。每执行一个功能,通常都要自上而下地穿越多层,增加了额外的开销,导致系统效率降低。
03.在操作系统结构设计中,层次结构的操作系统最显著的不足是()。
在层次结构中,每个层次都可以访问相邻的高层或低层,但不能跨越多个层次,A错误。层次结构的操作系统确实会增加一些复杂度和开销,但这不是最显著的不足,如果设计得当,层次结构可以提高效率和可靠性,因为每一层都可以独立地进行优化和测试,B错误。层次结构需要对每层精心的划分和设计,而且要保证接口的一致性和完备性,这是一个非常复杂的过程,而且很难做到完美,C正确。层次结构不限制模块的数量,只将模块按照功能和依赖关系分成不同的层次,层次结构可以有很多模块,只要它们符合层次结构的原则,D错误。
04.下列选项中,()不属于模块化操作系统的特点。
模块化操作系统的各功能模块都在内核中,且模块之间相互调用、相互依赖,任何一个模块出错,都可能导致整个内核崩溃。B项的设置属于“移花接木”,正确的说法应该是:在微内核操作系统中,内核外的某个功能模块出错不会导致整个系统崩溃,可靠性高。
05.相对于微内核系统,()不属于大内核操作系统的缺点。
微内核和宏内核作为两种对立的结构,它们的优缺点也是对立的。微内核OS的主要缺点是性能问题,因为需要频繁地在核心态和用户态之间进行切换,因而切换开销偏大。
06.下列说法中,()不适合描述微内核操作系统。
功能分层设计是分层式OS的特点。通常可以从四个方面来描述微内核OS:①内核足够小:②基于客户/服务器模式:③应用“机制与策略分离”原理;④采用面向对象技术。
07.对于以下五种服务,在采用微内核结构的操作系统中,()不宜放在微内核中。
I.进程间通信机制
Ⅱ.低级I/O
Ⅲ.低级进程管理和调度
IV.中断和陷入处理
V.文件系统服务
进程(线程)之间的通信功能是微内核最频繁使用的功能,因此几乎所有微内核OS都将其放入微内核。低级I/O和硬件紧密相关,因此应放入微内核。低级进程管理和调度属于调度功能的机制部分,应将它放入微内核。微内核OS将与硬件紧密相关的一小部分放入微内核处理,此时微内核的主要功能是捕获所发生的中断和陷入事件,并进行中断响应处理,识别中断或陷入的事件后,再发送给相关的服务器处理,故中断和陷入处理也应放入微内核。而文件系统服务是放在微内核外的文件服务器中实现的,故仅V不宜放在微内核中。
08.相对于传统操作系统结构,采用微内核结构设计和实现操作系统有诸多好处,下列()是微内核结构的特点。
I.使系统更高效
Ⅱ.添加系统服务时,不必修改内核
Ⅲ.微内核结构没有单一内核稳定
IV.使系统更可靠
微内核结构需要频繁地在管态和目态之间进行切换,操作系统的执行开销相对偏大,那些移出内核的操作系统代码根据分层的原则被划分成若干服务程序,它们的执行相互独立,交互则都借助于微内核进行通信,影响了系统的效率,因此I不是优势。由于内核的服务变少,且一般来说内核的服务越少内核越稳定,所以Ⅲ错误。而Ⅱ、IV正是微内核结构的优点。
09.下列关于操作系统结构的说法中,正确的是()。
I.当前广泛使用的Windows操作系统,采用的是分层式OS结构
Ⅱ.模块化的OS结构设计的基本原则是,每一层都仅使用其底层所提供的功能和服务,这样就使系统的调试和验证都变得容易
Ⅲ.由于微内核结构能有效支持多处理机运行,故非常适合于分布式系统环境
IV.采用微内核结构设计和实现操作系统具有诸多好处,如添加系统服务时,不必修改内核、使系统更高效。
Windows是融合了宏内核和微内核的操作系统,I错误。Ⅱ描述的是层次化构架的原则。微内核架构将操作系统的核心功能和其他服务分离,使不同的服务可在不同的处理器上并行执行,提高了系统的并发性和可扩展性;微内核架构可以方便地实现进程间的通信和同步,支持服务器之间的消息传递和远程过程调用,使得分布式系统的开发和管理更简单和高效,Ⅲ正确。添加系统服务时不必修改内核,这就使得微内核构架的可扩展性和灵活性更强:微内核构架的主要问题是性能问题,“使系统更高效”显然错误。
10.下列关于微内核操作系统的描述中,不正确的是()。
微内核会增加一些开销,如上下文切换、消息传递、数据拷贝等。这些开销会降低操作系统的执行效率,尤其是对一些频繁调用的服务。A、C、D项均正确。
11.下列关于操作系统外核(exokernel)的说法中,错误的是()。
在拥有外核的操作系统中,外核只负责硬件资源的分配、回收、保护等,进程管理相关的工作仍然由内核负责。
12.对于计算机操作系统引导,描述不正确的是()。
常驻内存的只是操作系统内核,其他部分仅在需要时才调入。
13.存放操作系统自举程序的芯片是()。
BIOS(基本输入/输出系统)是一组固化在主板的ROM芯片上的程序,它包含系统设置程序、基本输入/输出程序、开机自检程序和系统启动自举程序等。
14.计算机操作系统的引导程序位于()中。
操作系统的引导程序位于磁盘活动分区的引导扇区中。引导程序分为两种:一种是位于ROM中的自举程序(BIOS的组成部分),用于启动具体的设备:另一种是位于装有操作系统硬盘的活动分区的引导扇区中的引导程序(称为启动管理器),用于引导操作系统。
15.计算机的启动过程是()。
①CPU加电,CS:IP指向FFFFOH;
②进行操作系统引导;
③执行JMP指令跳转到BIOS;
④登记BIOS中断程序入口地址;
⑤硬件自检。
CPU激活后,从顶端的地址FFFFOH获得第一条执行的指令,这个地址仅有16字节,放不下一段程序,所以是一条MP指令,以跳到更低地址去执行BIOS程序。BIOS程序在内存最开始的空间构建中断向量表和相应服务程序,在后续POST过程中要用到中断调用等功能。然后进行通电自检(Power--on Self Test,POST)以检测硬件是否有故障。完成POST后,BIOS需要在硬盘、光驱或软驱等存储设备搜寻操作系统内核的位置以启动操作系统。
16.检查分区表是否正确,确定那个分区为活动分区,并在程序结束时将该分区的启动程序(操作系统引导扇区)调入内存加以执行,这是()的任务。
BIOS将控制权交给排在首位的启动设备后,CPU将该设备主引导扇区的内容[主引导记录(MBR)]加载到内存中,然后由MBR检查分区表,查找活动分区,并将该分区的引导扇区的内容[分区引导记录(PBR)]加载到内存加以执行。
17.下列关于虚拟机的说法中,正确的是()。
I.虚拟机可以用软件实现
Ⅱ.虚拟机可以用硬件实现
Ⅲ.多台虚拟机可同时运行在同一物理机器上,它实现了真正的并行
软件能实现的功能也能由硬件实现,因为虚拟机软件能实现的功能也能由硬件实现,软件和硬件的分界面是系统结构设计者的任务,I和Ⅱ正确。实现真正并行的是多核处理机,多台虚拟机同时运行在同一物理机器上,类似于多个程序运行在同一个系统中。
18.下列关于VMware Workstation虚拟机的说法中,错误的是()。
VMware Workstation虚拟机属于第二类虚拟机管理程序,如果真实硬件直接执行虚拟机中的敏感指令,那么该指令非法时可能会导致宿主操作系统崩溃,而这是不可能的,实际上是由第二类虚拟机管理程序模拟真实硬件环境。虚拟机看起来和真实物理计算机没什么两样,因此当然可以安装多个操作系统。VMware Workstation就是一个安装在计算机上的程序,在创建虚拟机时,会为该虚拟机创建一组文件,这些虚拟机文件都存储在主机的磁盘上。
19.虚拟机的实现离不开虚拟机管理程序(VMM),下列关于VMM的说法中正确的是()。
I.第一类VMM直接运行在硬件上,其效率通常高于第二类VMM
Ⅱ.由于VMM的上层需要支持操作系统的运行、应用程序的运行,因此实现VMM的代码量通常大于实现一个完整操作系统的代码量
Ⅲ.VMM可将一台物理机器虚拟化为多台虚拟机器
IV.为了支持客户操作系统的运行,第二类VMM需要完全运行在最高特权级
第一类VM直接运行在硬件上:第二类VMM运行在宿主操作系统上,不能直接和硬件打交道,因此第一类VM的效率通常更高。VMM的功能没有操作系统的功能复杂,其代码量少于一个完整的操作系统。I是基本概念。第一类VMM运行在最高特权级(内核态),而第二类 VMM和普通应用程序的地位相同,通常运行在较低特权级(用户态)。
20.【2013统考真题】计算机开机后,操作系统最终被加载到()。
系统开机后,操作系统的程序会被自动加载到内存中的系统区,这段区域是RAM。部分未复习计组的读者对该内容可能不太熟悉,但熟悉了各类存储介质后,解答本题并不难。
21.【2022统考真题】下列选项中,需要在操作系统进行初始化过程中创建的是()。
在操作系统初始化的过程中需要创建中断向量表,以实现通电自检(POST),CPU检测到中断信号后,根据中断号查询中断向量表,跳转到相应的中断处理程序,A正确。在硬盘逻辑格式化之前,需要先对硬盘进行分区,即创建硬盘分区表。分区完成后,对物理分区进行逻辑格式化(创建文件系统),为每个分区初始化一个特定的文件系统,并创建文件系统的根目录。如果某个分区采用UX文件系统,则还要在该分区中建立文件系统的索引节点表。
22.【2023统考真题】与宏内核操作系统相比,下列特征中,微内核操作系统具有的是()。
I.较好的性能
Ⅱ.较高的可靠性
Ⅲ.较高的安全性
IV.较强的可扩展性
微内核构架将内核中最基本的功能保留在内核,只有微内核运行在用户态,其余模块都运行在用户态,一个模块中的错误只会使这个模块崩溃,而不会使整个系统崩溃,因此具有较高的可靠性和安全性。微内核的非核心功能运行在用户空间,可通过插件或模块的方式进行扩展,无须改动内核代码,因此具有较强的可扩展性。微内核需要频繁地在用户态和核心态之间进行切换,操作系统的执行开销偏大,从而影响系统性能。
1.7 本章疑难点
1.并发性与并发性的区别和联系
并行性和并发性是即相似又有区别的两个概念。并行性是指两个或多个事件在同一时刻发生,并发性是指两个或多个事件在同一时间间隔内发生。
在多道程序环境下,并发性是指在一段时间内,宏观上有多个程序同时运行,但在单处理器系统中每个时刻却仅能有一道程序执行,因此微观上这些程序只能分时地交替执行。若在计算机系统中有多个处理器,则这些可以并发执行的程序便被分配到多个处理器上,实现并行执行,即利用每个处理器来处理一个可并发执行的程序。
2.特权指令与非特权指令
所谓特权指令,是指有特殊权限的指令,由于这类指令的权限最大,使用不当将导致整个系统崩溃,如清内存、置时钟、分配系统资源、修改虚存的段表或页表、修改用户的访问权限等。若所有程序都能使用这些指令,则系统一天死机n次都不足为奇。为保证系统安全,这类指令只能用于操作系统或其他系统软件,不直接提供给用户使用。因此,特权指令必须在核心态执行。实际上,CPU在核心态下可以执行指令系统的全集。形象地说,特权指令是那些儿童不宜的东西,而非特权指令是老少皆宜的东西。
为了防止用户程序中使用特权指令,用户态下只能使用非特权指令,核心态下可以使用全部指令。在用户态下使用特权指令是,将产生中断以阻止用户使用特权指令。所以用户程序放在用户态运行,而操作系统中必须使用特权指令的那部分程序在核心态下运行,保证了计算机系统的安全可靠。从用户态转换为核心态的唯一途径是中断或异常。
3.访管指令与访管中断
访管指令是一条可以在用户态下执行的指令。在用户程序中,因要求操作系统提供服务而有意识地使用访管指令,从而产生一个中断事件在(自愿中断),将操作系统转换为核心态,称为访管中断。访管中断由访管指令产生,程序员使用访管指令向操作系统请求服务。
为什么要在程序中引入访管指令呢?这是因为用户程序只能在用户态下运行。若用户程序想要完成在用户态下无法完成的工作,该怎么办呢?解决这个问题要靠访管指令。访管指令本身不是特权指令,其基本功能是让程序拥有“自愿进管”的手段,从而引起访管中断。
处于用户态的用户程序使用访管指令是,系统根据访管指令的操作数执行访管中断处理程序,访管中断处理程序将按系统调用的操作数和参数转到相应的例行子程序。完成服务功能后,退出中断,返回到用户程序断点继续执行。
4.定义微内核结构OS的四个方面
脚注分割线
1_7_2. 基于面向对象技术中的“抽象”和“隐藏”原则能控制系统的复杂性,进一步利用“对象”“封装”和“继承”等概念还能确保操作系统的正确性、可靠性、易扩展性等。正因如此,面向对象技术被广泛应用于现代操作系统的设计之中。 ↩
1_7_1. 机制是指实现某一功能的具体执行机构。策略则是在机制的基础上借助于某些参数和算法来实现该功能的优化,或达到不同的功能目标。在传统的OS中,将机制放在OS的微内核中。正因如此,才可以将内核做得很小。 ↩
1_5_7. 分区引导记录搜索活动分区中的启动管理器,加载启动管理器。 ↩
1_5_6. 读取活动分区的第一个扇区,这个扇区称为分区引导记录(PBR),其作用是寻找并激活分区根目录下用于引导操作系统的程序(启动管理器)。 ↩
1_5_5. MBR包含硬盘分区表,硬盘分区表以特定的标识符区分活动分区和非活动分区。主引导记录扫描硬盘分区表,进而识别含有操作系统的硬盘分区(活动分区)。找到硬盘活动分区后,开始加载硬盘活动分区,将控制权交给活动分区。 ↩
1_5_4. 硬盘以特定的标识符区分引导硬盘和非引导硬盘。如果发现一个存储设备不是可引导盘,就检查下一个存储设备。如无其他启动设备,就会死机。主引导记录MBR的作用是告诉CPU去硬盘的哪个主分区去找操作系统。 ↩
1_5_3. 硬件自检后,BIOS开始读取Boot Sequence(通过CMOS里保存的启动顺序,或者通过与用户交互的方式),把控制权交给启动顺序排在第一位的存储设备,然后CPU将该存储设备引导扇区的内容加载到内存中。 ↩
1_5_2. 启动BIOS程序后,先进行硬件自检,检查硬件是否出现故障。如有故障,主板会发出不同含义的蜂鸣,启动中止;如无故障,屏幕会显示CPU、内存、硬盘等信息。 ↩
1_5_1. 激活的CPU读取ROM的boot程序,将指令寄存器置为BIOS(基本输入/输出系统)的第一条指令,即开始执行BIOS的指令。 ↩
1_4_4_10. 在其他设计中,每个虚拟机都认为它有自己的硬盘,其盘块号从0到最大编号,这样虚拟机监控程序就必须维护一张表格以重映像磁盘地址(或其他资源),有了外核,这个重映射处理就不需要了。外核只需要记录已经分配给各个虚拟机的有关资源即可。 ↩
1_4_4_9. 这样,某个虚拟机可能得到磁盘的0至1023盘块,而另一台虚拟机会得到磁盘的1024至2047盘块,等待。 ↩
1_4_4_8. 客户和服务器之间、服务器和服务器之间的通信采用消息传递机制,这就使得微内核系统能很好地支持分布式系统和网络系统。 ↩
1_4_4_7. 与CPU和I/O硬件有关的代码均放在内核中,而其他各种服务器均与硬件平台无关,因而将操作系统移植到另一个平台上所需做的修改是比较小的。 ↩
1_4_4_6. 前面已举例说明。 ↩
1_4_4_5. 许多功能从内核中分离出来,当要修改某些功能或增加新功能时,只需在相应的服务器中修改或新增功能,或再增加一个专用的服务器,而无须改动内核代码。 ↩
1_4_4_4. 微内核OS将与硬件紧密相关的一小部分放入微内核,此时微内核的主要功能是捕获所发生的中断和陷入事件,并进行中断响应处理,在识别中断或陷入事件后,再发送给相关的服务器来处理,故中断和陷入处理也应放入微内核. ↩
1_4_4_3. 在为内核中,只配置最基本的低级存储器管理机制,用于实现将逻辑地址变换为物理地址等的页表机制和地址变换机制,这一部分是依赖于硬件的,因此放入微内核.而实现虚拟存储器管理的策略,则包含应采取何种页面置换算法,采用何种内存分配与回收的策略,应将这部分放在微内核外的存储器管理服务器中. ↩
1_4_4_2. 进程(线程)之间的通信功能是微内核OS最基本的功能,此外还有进程的切换、进程的调度,以及多处理机之间的同步等功能,都应放入为内核中.例子:为实现进程调度功能,需要在进程管理中设置一个或多个进程优先级队列,这部分属于调度功能的机制部分,应将它放入微内核中.而对用户进程如何分类,以及优先级的确认方式,则属于策略问题,可将它们放入微内核外的进程管理服务其中. ↩
1_4_4_1. 例如,文件服务代码运行时出了问题,宏内核因为文件服务运行在内核态,系统直接崩溃.而微内核的文件服务是运行在用户态,只要把文件服务功能强行停止,然后重启,就可以继续使用,系统不会崩溃. ↩
1_4_4. 操作系统每执行一个功能,通常要自上而下地穿越多层,各层之间都有相应的层间通信机制,这无疑增加了额外的开销,导致系统效率降低. ↩
1_4_3. 因为依赖关系固定后,往往就显得不够灵活. ↩
1_4_2. 在系统中增加、修改或替换一层的模块或整层时,只要不改变相应层间的接口,就不会影响其他层. ↩
1_4_1. 第1层可先调试而无须考虑系统的其他部分,因为他只使用了基本硬件.第1层调试完且验证正确之后,就可以调试第2层,如此向上.如果在调试某层时发生错误,那么错误应在这一层上,这是因为它的低层都调试好了. ↩
原因. 显然,系统调用相关功能涉及系统资源管理、进程管理之类的操作,对整个系统的影响非常大,因此必然需要使用某些特权指令来完成。 ↩
终止. 终止(Abort)指出现了使CPU无法继续执行的硬件故障,如控制器出错、存储器校验错等。 ↩
自陷. 自陷(Trap)是一种事先安排的“异常”事件,用于在用户态下调用操作系统内核程序,如条件陷阱指令。 ↩
故障. 故障(Fault)通常是由指令执行引起的异常,如非法操作码、缺页故障、除数为0、运算溢出等。 ↩
可屏蔽中断. 指通过INTR线发出的中断请求,通过改变屏蔽字可以实现多重中断,从而使得中断处理更加灵活。 ↩
不可屏蔽中断. 指通过NMI线发出的中断请求,通常是紧急的硬件故障,如电源掉电等。此外,异常也是不能被屏蔽的。 ↩
时间限制. 可分为两种情况。若某个动作必须绝对地在规定的时刻(或规定的时间范围)发生,则称为硬实时系统,如飞行器的飞行自动控制系统,这类系统必须提供绝对保证,让某个特定的动作在规定的时间内完成。若能够接收偶尔违反时间规定且不会引起任何永久性的损害,则称为软实时系统,如飞机订票系统、银行管理系统。 ↩
及时性. 用户请求能在很短时间内获得响应。分时系统采用时间片轮转法方式使一台计算机同时为多个终端服务,使用户能对系统的及时响应感到满意。 ↩
独立性. 系统中多个用户可以彼此独立地进行操作,互不干扰,单个用户感觉不到别人也在使用这台计算机,好像只有自己单独使用这台计算机一样。 ↩
交互性. 用户能够方便地与系统进行人机对话,即用户通过终端采用人机对话的方式直接控制程序运行,与同程序进行交互。 ↩
同时性. 也称多路性,指允许多个终端用户同时使用一台计算机,即一台计算机与若干台终端相连接,终端上的这些用户可以同时或基本同时使用计算机。 ↩
微观上串行. 内存中的多道程序轮流占有CPU,交替执行。 ↩
宏观上并行. 同时进入系统的多道程序都处于运行过程中,即它们先后开始各自的运行,但都未运行完毕。 ↩
多道. 计算机内存中同时存放多条相互独立的程序。 ↩
单道性. 内存中仅有一道程序运行,即监督程序每次从磁带上只调入一道程序进入内存运行,当该程序完成或发生异常情况时,才换入其后继程序进入内存运行。 ↩
顺序性. 磁带上的各道作业顺序地进入内存,各道作业的完成顺序与它们进入内存的顺序在正常情况下应完全相同,亦即先调入内存的作业先完成。 ↩
自动性. 在顺利的情况下,磁带上的一批作业能自动地逐个运行,而无须人工干预。 ↩
并发. Concurrence,并发指两个或多个事件在同一时间间隔内发生。操作系统的并发性是指计算机系统中同时存在多个运行的程序,因此它具有处理和调度多个程序同时执行的能力。在操作系统中,引入进程的目的是使程序能并发执行。【注意同一时间间隔(并发)和同一时刻(并行)的区别】。 ↩
共享. Sharing,资源共享即共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。共享可分为互斥共享方式、同时访问方式。 ↩
关系. 两者之间互为存在的条件:1.资源共享是以程序的并发为条件的,若系统不允许程序并发执行,则自然不存在资源共享问题;
2.若系统不能对资源共享实施有效的管理,则必将影响到程序的并发执行,甚至根本无法并发执行。 ↩
虚拟. Virtual,虚拟是指把一个物理上的实体变为若干逻辑上对应物。用于实现虚拟的技术,称为虚拟技术(操作系统虚拟技术可归纳为:时分复用技术,如处理器的分时共享;空分复用技术,如虚拟存储器)。 ↩
异步. Asynchronism,多道程序环境运行多个程序并发执行,但由于资源有限,进程的执行并不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进,这就是进程的异步性。 ↩
处理机管理. 在多道程序环境下,处理机的分配和运行都以进程(或线程)为基本单位,因而对处理机的管理可归结为对进程的管理。并发是指计算机内同时运行多个进程,因此进程何时创建、何时撤销、如何管理、如何避免冲突、合理共享就是进程管理的最主要的任务。进程管理的主要功能包括进程控制、进程同步、进程通信、死锁处理、处理机调度等。 ↩
存储器管理. 存储器管理是为了给多道程序的运行提供良好的环境,方便用户使用即提高内存的利用率,主要包括内存分配与回收、地址映射、内存保护与共享和内存扩充等功能。 ↩
设备管理. 设备管理的主要任务是完成用户I/O请求,方便用户使用各种设备,并提高设备的利用率,主要包括缓冲管理、设备分配、设备处理和虚拟设备等功能。 ↩
文件管理. 计算机中信息都是以文件的形式存在的,操作系统中负责文件管理的部分称为文件系统。文件管理包括文件存储空间的管理、目录管理及文件读写管理和保护等。 ↩
联机命令接口. 又称交互式命令接口,适用于分时或实时系统的接口。由一组键盘操作命令组成。用户通过控制台或终端输入操作命令,向系统提出各种服务要求。用户每输入一条命令,控制权就转给操作系统的命令解释程序,然后由命令解释程序解释并执行输入的命令,完成指定功能。之后,控制权转回控制台或终端,此时用户又可输入下一条命令。(“雇主”说一句话,“工人”做一件事,并作出反馈,这就强调了交互性) ↩
脱机命令接口. 又称批处理命令接口,适用于批处理系统,由一组作业控制命令组成。脱机用户不能直接关于作业的运行,而应事先用相应的作业控制命令写成一份作业操作说明书,连同作业一起交给系统。系统调度到该作业时,由系统中的命令解释程序逐条解释执行作业说明书上的命令,从而间接地控制作业的运行。(“雇主”把要“工人”做的事情写在清单上,“工人”按照清单命令逐条完成这些事,这就是批处理) ↩